# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

GeckoProgram(CONFIG['MOZ_CHILD_PROCESS_NAME'], linkage='dependent')

SOURCES += [
    'MozillaRuntimeMain.cpp',
]

include('/ipc/chromium/chromium-config.mozbuild')

LOCAL_INCLUDES += [
    '/toolkit/xre',
    '/xpcom/base',
]

# We link GMPLoader into plugin-container on desktop so that its code is
# covered by the desktop DRM vendor's voucher.
SOURCES += [
    '../../dom/media/gmp/GMPLoader.cpp',
]
USE_LIBS += [
    'rlz',
]

# DELAYLOAD_DLLS in this block ensures that the DLL blocklist is functional
if CONFIG['OS_ARCH'] == 'WINNT':
    DELAYLOAD_DLLS += [
        'nss3.dll',
    ]

    DELAYLOAD_DLLS += [
        'xul.dll',
    ]

if CONFIG['_MSC_VER']:
    # Always enter a Windows program through wmain, whether or not we're
    # a console application.
    WIN32_EXE_LDFLAGS += ['-ENTRY:wmainCRTStartup']

LDFLAGS += CONFIG['MOZ_ALLOW_HEAP_EXECUTE_FLAGS']

# Control the default heap size.
# This is the heap returned by GetProcessHeap().
# As we use the CRT heap, the default size is too large and wastes VM.
#
# The default heap size is 1MB on Win32.
# The heap will grow if need be.
#
# Set it to 256k.  See bug 127069.
if CONFIG['OS_ARCH'] == 'WINNT' and not CONFIG['GNU_CC']:
    LDFLAGS += ['/HEAP:0x40000']

if CONFIG['GNU_CXX']:
    CXXFLAGS += ['-Wshadow']

DEFINES['MOZ_PLUGIN_CONTAINER'] = 1;
